package cn.wolfcode.p2p.service.impl;

import cn.wolfcode.p2p.business.service.IBidRequestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * 定时任务
 */
@Component
public class ScheduleTask {
    @Autowired
    private IBidRequestService bidRequestService;

    /**
     * 问题:每秒都要发数据库,性能不好
     * 优化方案:把待发标的借款对象放到缓存池中,每秒从缓存中取数据判断
     * 如何把数据库中的待发标放到缓存池
     * 1.如果审核一个待发标,放到缓存队列
     * 2.系统启动时加入缓存对列
     * 3.再搞一个定时器查询(这个事件可以间隔长,防止漏掉)
     * 4.加入队列的时候去重
     * <p>
     * 取:
     * 每秒从缓存中取
     * 修改状态为待发标
     */

    @Scheduled(cron = "*/1 * * * * *")
    public void checkPublishBidRequest() {
        bidRequestService.checkPublishBidRequestforQueue();
    }

    /**
     * 第二个定时器,每隔多长时间去数据库查一次
     */
    @Scheduled(cron = "1 */50 * * * *")
    public void publishBidRequestToQueue() {
        bidRequestService.publishBidRequestToQueue();
    }
}
